iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 3
0
Modern Web

Vue.js Web Component 基礎以及 Vuex狀態管理 系列 第 5

Vue.js Web Component 基礎以及 Vuex狀態管理 鐵人賽 第五天Vue Component Register

  • 分享至 

  • xImage
  •  

Vue Component Register

在建立 Vue Instance 之後,如需要使用其他以定義過的Component

就必須把建立好的Component各別註冊不同的名字,再來進行使用

而註冊分為global跟local

顧名思義

global註冊就是全域的Component,可以在所有的其他Component或Instance內使用

local註冊就是區域的Component,會註冊在某個Component或是Instance內,

所以只能在該component或instance內使用

參考文件

global register

一般,如果是常用的Component通常會註冊為global

範例 如下:

HTML部分:

<div id="app"/>

javascript部分:

Vue.component('prompt-compo', {
  template: '<div><p>${message}</p><button @click="sayHi">say Hi!</button></div>',
  delimiters: ['${','}'],
  data: function(){
    return {
      message: 'Hi , test'
    }
  },
  methods: {
    sayHi: function() {
      alert('Hi');
    }
  }
});

let vm = new Vue({
  el:'#app',
  template: `<prompt-compo/>`
});

src code

local register

架設這個component只需要在某些特殊component才使用

那就可以利用在需要的地方在動態import即可

好處是可以減少bundle的size,也避免全域污染的問題

範例如下:

<div id="app"/>
const PromptComponent = {
  template:'<div><p>${message}</p><button @click="sayHi">say Hi!</button></div>',
  delimiters: ['${','}'],
  data: function() {
    return {
      message: 'say hi test'
    }
  },
  methods: {
    sayHi: function() {
      alert('hi test');
    }
  }
};
let vm = new Vue({
  el:'#app',
  components: {
    'prompt-component':PromptComponent
  },
  template: `<prompt-component/>`
});

src code


上一篇
Vue.js Web Component 基礎以及 Vuex狀態管理 鐵人賽 第四天 Vue Instance Life Cycle
下一篇
Vue.js Web Component 基礎以及 Vuex狀態管理 鐵人賽 第六天 Vue render Process
系列文
Vue.js Web Component 基礎以及 Vuex狀態管理 8
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言